/**
 * @Author: Sun Rising
 * @Date: 2020-07-02 08:19:12
 * @Last Modified by: Sun Rising
 * @Last Modified time: 2020-07-02 08:19:12
 * @Description: 单例模式
 */
class Singleton {

    // 饿汉方式（推荐）
    private static singleton: Singleton

    // 饱汉方式
    // private static singleton: Singleton = new Singleton()

    private constructor() { }

    // 饿汉方式（推荐）
    public static getSingleton() {
        if (!Singleton.singleton)
            Singleton.singleton = new Singleton()
        return Singleton.singleton
    }

    // 饱汉方式
    // public static getSingleton() {
    //     return Singleton.singleton
    // }

}

let singleton1 = Singleton.getSingleton()
let singleton2 = Singleton.getSingleton()
console.log(singleton1 === singleton2);
